package com.zhonghui.scm.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 供应链SCM-销售管理-销售合同对象 scm_sale_contract
 * 
 * @author qiezhi
 * @date 2023-12-22
 */
public class ScmSaleContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @Excel(name = "编号")
    private Long id;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 销售订单id */
    @Excel(name = "销售订单id")
    private Long orderId;

    /** 客户id */
    @Excel(name = "客户id")
    private Long customId;

    /** 业务员id */
    @Excel(name = "业务员id")
    private Long salesManId;

    /** 送货方式 */
    @Excel(name = "送货方式")
    private Long shipping;

    /** 收货地址 */
    private String address;

    /** 签订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingDate;

    /** 申请人id */
    @Excel(name = "申请人id")
    private Long applyId;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyDate;

    /** 申请状态 */
    @Excel(name = "申请状态")
    private String applyStatus;

    /** 审核人id */
    @Excel(name = "审核人id")
    private Long auditorId;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditTime;

    /** 审核状态 */
    @Excel(name = "审核状态")
    private String auditStatus;

    /** 金额合计 */
    @Excel(name = "金额合计")
    private BigDecimal totalAmount;

    /** 审核意见 */
    private String auditorComments;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setContractNumber(String contractNumber) 
    {
        this.contractNumber = contractNumber;
    }

    public String getContractNumber() 
    {
        return contractNumber;
    }
    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setCustomId(Long customId) 
    {
        this.customId = customId;
    }

    public Long getCustomId() 
    {
        return customId;
    }
    public void setSalesManId(Long salesManId) 
    {
        this.salesManId = salesManId;
    }

    public Long getSalesManId() 
    {
        return salesManId;
    }
    public void setShipping(Long shipping) 
    {
        this.shipping = shipping;
    }

    public Long getShipping() 
    {
        return shipping;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setSigningDate(Date signingDate) 
    {
        this.signingDate = signingDate;
    }

    public Date getSigningDate() 
    {
        return signingDate;
    }
    public void setApplyId(Long applyId) 
    {
        this.applyId = applyId;
    }

    public Long getApplyId() 
    {
        return applyId;
    }
    public void setApplyDate(Date applyDate) 
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate() 
    {
        return applyDate;
    }
    public void setApplyStatus(String applyStatus) 
    {
        this.applyStatus = applyStatus;
    }

    public String getApplyStatus() 
    {
        return applyStatus;
    }
    public void setAuditorId(Long auditorId) 
    {
        this.auditorId = auditorId;
    }

    public Long getAuditorId() 
    {
        return auditorId;
    }
    public void setAuditTime(Date auditTime) 
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime() 
    {
        return auditTime;
    }
    public void setAuditStatus(String auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus() 
    {
        return auditStatus;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setAuditorComments(String auditorComments) 
    {
        this.auditorComments = auditorComments;
    }

    public String getAuditorComments() 
    {
        return auditorComments;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractNumber", getContractNumber())
            .append("orderId", getOrderId())
            .append("customId", getCustomId())
            .append("salesManId", getSalesManId())
            .append("shipping", getShipping())
            .append("address", getAddress())
            .append("signingDate", getSigningDate())
            .append("applyId", getApplyId())
            .append("applyDate", getApplyDate())
            .append("applyStatus", getApplyStatus())
            .append("auditorId", getAuditorId())
            .append("auditTime", getAuditTime())
            .append("auditStatus", getAuditStatus())
            .append("totalAmount", getTotalAmount())
            .append("auditorComments", getAuditorComments())
            .append("remark", getRemark())
            .toString();
    }
}
